package domain

import (
	"github.com/hlhutu/gormplus"
	"ruoyi-go/internal/framework/db"
)

type SysCache struct {
	// 缓存名称
	CacheName string `json:"cacheName" gorm:"column:cache_name" form:"cacheName"`

	// 缓存键名
	CacheKey string `json:"cacheKey" gorm:"column:cache_key" form:"cacheKey"`

	// 缓存内容
	CacheValue string `json:"cacheValue" gorm:"column:cache_value" form:"cacheValue"`

	// 备注
	Remark string `json:"remark" gorm:"column:remark" form:"remark"`
}

// TableName 映射数据库表名
func (m SysCache) TableName() string {
	return "sys_cache"
}

// SysCache Model 定义
type sysCacheModel struct {
	gormplus.Model[SysCache] // 使用泛型封装基础操作
}

// SysCacheModelInst 单例变量初始化
var sysCacheModelInst *sysCacheModel

// SysCacheModel 获取 SysCache 单例模型
func SysCacheModel() *sysCacheModel {
	if sysCacheModelInst == nil {
		// 将 SysCache 注册到 Gorm DB，并初始化
		sysCacheModelInst = &sysCacheModel{Model: gormplus.NewModel(SysCache{}, db.GormDB)}
	}
	return sysCacheModelInst
}
